 {
        
     cc.Class({
            extends: cc.Component,
            properties: {
                nodeHuTilePrefab: {
                    default: null,
                    type: cc.Prefab
                },
                effectNodeHuPrefab: {
                    default: null,
                    type: cc.Prefab
                },
                seatId: 0
            },
            onLoad: function () {
                Global.notificationCenter.on(Global.eventName.GAME_PLAY_EFFECT_HU, this._onRefresh.bind(this), this);
            },
            start: function () {
            },
            onDestroy: function () {
                Global.notificationCenter.offAll(this);
            },
            _onRefresh: function (e) {
                this.node.removeAllChildren();
                var t = Global.tableModel.getPlayerModel(this.seatId);
                if (null != t) for (var n = t.getHuTiles(), o = t.getMultiWinTiles(), i = 0, a = 0, r = 0, s = 0, l = 20, c = 0; c < n.length; c++) {
                    var d = cc.instantiate(this.nodeHuTilePrefab), u = d.width, h = d.height;
                    this.seatId == Global.config.SEAT_DOWN && (i = c % 2 * u, a = 17 * Math.floor(c / 2)),
                    this.seatId == Global.config.SEAT_RIGHT && (r = 5, s = 18, i = -1 * Math.floor(c % 2) * r + Math.floor(c / 2) * r,
                        a = c % 2 * h + Math.floor(c / 2) * s, c % 2 == 0 && (l *= 10), l--), this.seatId == Global.config.SEAT_UP && (i = c % 3 * -1 * u + -1 * Math.floor(c / 3) * 5,
                        a = 15 * Math.floor(c / 3), c % 3 == 0 && (l *= 10), l--), this.seatId == Global.config.SEAT_LEFT && (r = 10,
                        s = 18, i = -1 * Math.floor(c % 2) * r + -1 * Math.floor(c / 2) * r, a = c % 2 * -1 * h + Math.floor(c / 2) * s + (c + 1) % 2 * r),
                        this.node.addChild(d, l), d.setPosition(cc.p(i, a));
                    var f = o.indexOf(c);
                    if (d.opacity = f >= 0 ? 200 : 255, d.getComponent("HuTileController").bindData(n[c]),
                        !e.reconnect) if (Global.tableModel.toLocalSeatIndex(e.seatId) == this.seatId && c == n.length - 1) {
                        var p = cc.instantiate(this.effectNodeHuPrefab);
                        this.node.addChild(p, 30), p.setPosition(cc.p(i, a)), p.scaleX = 1, p.scaleY = 1,
                            p.getComponent(cc.Animation).onAniEnd = function () {
                                p.removeFromParent(), p.isValid && p.destroy();
                            }.bind(this);
                    }
                } else cc.error("NodeHuController _onRefresh playerModel = null");
            }
        })
    }